

package com.scs.application.modules.upms.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 报表配置实体对象
 *
 */
@TableName("report_config")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class ReportConfig extends DataEntity implements Serializable {

    /**
     * 图表键名
     */
    @NotBlank(message = "图表键名不能为空")
    @Length(min = 1, max = 20, message = "图表键名长度必须介于 1 和 20 之间")
    private String code;

    /**
     * 图表名称
     */
    @NotBlank(message = "图表名称不能为空")
    @Length(min = 1, max = 50, message = "图表名称长度必须介于 1 和 50 之间")
    private String name;

    /**
     * 图表类型
     */
    @NotBlank(message = "图表类型不能为空")
    @Length(min = 1, max = 50, message = "图表类型长度必须介于 1 和 50 之间")
    private String types;

    /**
     * 数据来源
     */
    @NotBlank(message = "数据来源不能为空")
    @Length(min = 1, max = 10, message = "数据来源长度必须介于 1 和 10 之间")
    private String source;

    /**
     * 多数据源
     */
    @NotBlank(message = "多数据源不能为空")
    @Length(min = 1, max = 1, message = "多数据源长度必须介于 1 和 1 之间")
    private String isMultipleDatasource;

    /**
     * 数据源ID
     */
    private String datasourceId;

    /**
     * 数据JSON
     */
    private String dataJson;

    /**
     * 数据SQL
     */
    @Length(max = 2000, message = "数据SQL长度必须介于 0 和 2000 之间")
    private String dataSql;

    /**
     * 数据URL
     */
    @Length(max = 200, message = "数据URL长度必须介于 0 和 200 之间")
    private String dataUrl;

    /**
     * 布局方式
     */
    @NotBlank(message = "布局方式不能为空")
    @Length(min = 1, max = 1, message = "布局方式长度必须介于 1 和 1 之间")
    private String layout;


    /**
     * 启用分页
     */
    @NotBlank(message = "启用分页不能为空")
    @Length(min = 1, max = 1, message = "启用分页长度必须介于 1 和 1 之间")
    private String isPaging;
}
